package com.me.study.javaCore.classLoader.classLoadingSeq1.test1;

/**
 * 类加载顺序测试：父类
 *
 * @author ME
 * @date   2019/2/28 18:51
 */
public class ClassA {

    static {
        System.out.println("[ClassA] 静态代码块");

        // 静态代码块 和 静态变量 personA 从上到下顺序执行，因此 personA 声明在静态代码块之后，编译通不过呀。。
        // System.out.println(personA);
    }

    // 成员变量 和 代码块 顺序执行，且早于 构造方法 执行
    public ClassA() {
        System.out.println("[ClassA] 构造方法");
    }

    protected String s1 = "s1";
    {
        // 成员变量、非静态代码块 从上到下顺序执行，s1 声明在 代码块 之后，编译通不过。。
        System.out.println("[ClassA] 非静态代码块：" + s1);
    }

    private static Person personA = new Person("static ClassA");

}

